package view; import java.awt.BorderLayout; import java.awt.Component; import java.awt.Dimension; import java.awt.FlowLayout; import java.awt.GridLayout; import java.awt.event.ActionListener; import java.util.Iterator; import java.util.TreeSet; import java.util.Vector; import javax.swing.BoxLayout; import javax.swing.JButton; import javax.swing.JComponent; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JList; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.JTextField; import javax.swing.event.TableModelListener; import javax.swing.table.DefaultTableModel; import model.OrderedProduct; import model.Product; public class UserView extends JFrame { private JTextField searchField; private JPanel panelView; private JPanel panelSearch; private JScrollPane scroll; private JTable table; private DefaultTableModel model; private JButton searchButton; private JButton orderHistoryButton; private JButton addToCartButton; private JList shoppingList; private JScrollPane scrollPane; private JButton emptyCart; private JPanel panelCart; private JPanel panelOrders; private JButton buyButton; private Vector listData; private Vector listDataO; private JList orderList; private JScrollPane scrollPaneO; public UserView() { super("User"); this.setSize(500, 600); this.setLocationRelativeTo(null); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setLayout(new GridLayout(4, 1)); panelSearch = new JPanel(); panelSearch.setPreferredSize(new Dimension(200, 20)); createSearchPanel(panelSearch); this.add(panelSearch); panelView = new JPanel(); panelView.setPreferredSize(new Dimension(480, 200)); createViewPanel(panelView); this.add(panelView); panelCart = new JPanel(new FlowLayout(FlowLayout.LEFT)); panelCart.setPreferredSize(new Dimension(300, 300)); createShoppingcartPanel(panelCart); this.add(panelCart); panelOrders = new JPanel(); panelOrders.setPreferredSize(new Dimension(480, 100)); createOrderPanel(panelOrders); this.add(panelOrders); this.setVisible(false); } private void createSearchPanel(JPanel panelSearch) { searchField = new JTextField(); searchField.setPreferredSize(new Dimension(200, 20)); panelSearch.add(searchField); searchButton = new JButton("Search"); searchButton.setSize(new Dimension(20, 20)); panelSearch.add(searchButton); orderHistoryButton = new JButton("Order history"); panelSearch.add(orderHistoryButton); } private void createOrderPanel(JPanel panelOrders){ listDataO = new Vector(); orderList = new JList(listDataO); scrollPaneO = new JScrollPane(); scrollPaneO.setPreferredSize(new Dimension(480,100)); scrollPaneO.getViewport().add(orderList); panelOrders.add(scrollPaneO); } private void createShoppingcartPanel(JPanel panelCart) { addToCartButton = new JButton("Add to shopping cart!"); addToCartButton.setBounds(30, 30, 30, 30); panelCart.add(addToCartButton); emptyCart = new JButton("Empty shopping cart!"); emptyCart.setBounds(30, 30, 30, 30); panelCart.add(emptyCart); listData = new Vector(); shoppingList = new JList(listData); scrollPane = new JScrollPane(); scrollPane.getViewport().add(shoppingList); panelCart.add(scrollPane); buyButton = new JButton("Buy"); buyButton.setBounds(30, 30, 30, 30); panelCart.add(buyButton); } private void createViewPanel(JPanel panelView) { Object[] rowCount = new Object[] { "ID", "Book", "Author", "Publisher", "Price", "Status" }; model = new DefaultTableModel(null, rowCount); table = new JTable(model); scroll = new JScrollPane(table); scroll.setPreferredSize(new Dimension(480, 200)); panelView.add(scroll); } private String getSearchField() { return searchField.getText(); } public JPanel getPanelView() { return panelView; } public void setPanelView(JPanel panelView) { this.panelView = panelView; } public DefaultTableModel getModel() { return this.model; } public JList getShoppingList() { return this.shoppingList; } public void addSearchButtonActionListener(ActionListener l) { searchButton.addActionListener(l); } public void addTableActionListener(TableModelListener tme) { model.addTableModelListener(tme); } public void addToListActionListener(ActionListener l) { addToCartButton.addActionListener(l); } public void addEmptyListActionListener(ActionListener l) { emptyCart.addActionListener(l); } public void addBuyActionListener(ActionListener l) { buyButton.addActionListener(l); } public void orderHistoryActionListener(ActionListener l) { orderHistoryButton.addActionListener(l); } public void paintTable(TreeSet<Product> products) { this.getModel().setRowCount(0); Iterator<Product> itr = products.iterator(); while (itr.hasNext()) { Product p1 = itr.next(); this.model.addRow(new Object[] { p1.getIdProduct(), p1.getTitle(), p1.getAuthor(), p1.getPublisher(), p1.getPrice(), p1.getStatus() }); } } public JPanel getPanelOrders(){ return this.panelOrders; } public JTable getTable() { return this.table; } public Vector getListData() { return listData; } public JList getOrderList(){ return orderList; } public void setListData(Vector listData) { this.listData = listData; } public Vector getListDataO() { return listDataO; } public void setListDataO(Vector listData) { this.listDataO = listData; } public String getSearchText() { return searchField.getText(); } }